package io.renren.modules.aic.service;

import io.renren.common.utils.PageUtils;
import io.renren.modules.aic.entity.AccountingDto;
import io.renren.modules.aic.entity.MemberEntity;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.baomidou.mybatisplus.service.IService;

/**
 * 会员表
 *
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2018-03-28 12:39:07
 */
public interface MemberService extends IService<MemberEntity> {

	PageUtils queryPage(Map<String, Object> params);

	/**
	 * 保存用户
	 */
	void save(MemberEntity member);

	/**
	 * 改变用户状态
	 */
	void changeStauts(String type, List<Long> memberIds);

	/**
	 * 查询伞下会员
	 * 
	 * @param level
	 * @param id
	 * @return
	 */
	PageUtils selectMemberTeam(Map<String, Object> params);

	/**
	 * 计算用户等级
	 * 
	 * @param ids
	 */
	void calcUserLevel(Set<Long> ids);

	/**
	 * 解冻会员账户
	 */
	void unblockAccount();

	/**
	 * 会员虚拟币总数
	 */
	Double totalBalance();

	/**
	 * 根据手机号统计当前会员的账务信息
	 * 
	 * @param mobile
	 * @return
	 */
	AccountingDto selectAccountingByMobile(String mobile);

	/**
	 * 分页统计伞下会员的账务信息
	 * 
	 * @param rowBounds
	 * @param wrapper
	 * @return
	 */
	PageUtils selectAccountingByHigher(Map<String, Object> params);
}
